#ifndef THEATER_H
#define THEATER_H


//----------------------------------------------------------------------------//
// I N C L U D E   Q T                                                        //
//----------------------------------------------------------------------------//
#include <QString>
#include <QUrl>
#include <QTime>
#include <QObject>


//----------------------------------------------------------------------------//
// I N C L U D E   P R O J E C T                                              //
//----------------------------------------------------------------------------//
#include "timebetweentheater.h"


//----------------------------------------------------------------------------//
// T Y P E S   &   D E F I N I T I O N S                                      //
//----------------------------------------------------------------------------//
typedef enum
{
  THEATER_NOT_SELECTED,
  THEATER_SELECTED
} TheaterSelection_t;

class TimeBetweenTheater;


//----------------------------------------------------------------------------//
// C L A S S   D E C L A R A T I O N                                          //
//----------------------------------------------------------------------------//
class Theater : public QObject
{
    Q_OBJECT
  public:
    //------------------------------------------------------------------------//
    // C O N T R U C T O R S                                                  //
    //------------------------------------------------------------------------//
    explicit Theater(QString url, QString name, QString postal);


    //------------------------------------------------------------------------//
    // P U B L I C   M E T H O D S   D E C L A R A T I O N                    //
    //------------------------------------------------------------------------//
    // getter
    QUrl getUrl(void);
    QString getName(void);
    QString getPostal(void);
    bool isSelected(void);
    QTime getTimeBetweenTheaterMin(Theater &);
    QTime getTimeBetweenTheaterMax(Theater &);
    // setter
    void addTimeBetweenTheater(Theater *, int min, int max);
    void removeTimeBetweenTheater(Theater &);
    void setSelect(bool);
    // operator
    bool operator==(Theater & right);


  public slots:
    //------------------------------------------------------------------------//
    // S L O T S                                                              //
    //------------------------------------------------------------------------//
    void setSelected(bool);


  private:
    //------------------------------------------------------------------------//
    // P R I V A T E   A T T R I B U T E S   D E C L A R A T I O N            //
    //------------------------------------------------------------------------//
    QUrl Url;
    QString Name;
    QString Postal;
    TheaterSelection_t Selected;
    QList<TimeBetweenTheater *> TimeBetweenTheaters;
};

#endif // THEATER_H
